home *** CD-ROM | disk | FTP | other *** search
- /* Listing2: © Clemens Marschner, 1994
- * Ein einfaches Funktions-Template */
-
- #include <exec/types.h> // für BOOL
- #include <string.h> // für strcmp()
- #include <stream.h> // für cout
-
- // Maximum-Funktion: Gibt den größeren Wert zurück
-
- template <class T> // T ist ein beliebiger Platzhalter.
- inline T Max(T a, T b) { return (a > b ? a : b); }
-
- // Max kann für alle Typen verwendet werden, die für den
- // Operator ">" eine überladene Funktion bereitstellen.
- // Damit ein Zeiger, z.B. char*, nicht einfach als
- // Zeigerwert verglichen wird, sondern dessen Inhalt,
- // muß man das Funktions-Template überladen
- // Diese Definition hat Vorrang vor dem Template
-
- inline char *Max(char *a, char *b)
- {
- return (strcmp(a,b) > 0 ? a : b);
- }
-
- void main() {
- char *a = "Peter";
- char *b = "Meyer";
- int c = 38, d = 18;
- cout << Max(a, b) << ", " << Max(c, d) << "\n";
- // Ausgabe: Peter,38
- // cout << Max(a, c); ergäbe einen Fehler
- }
-
-